$(function() {
    // 列表页表头筛选
    $('thead').find('.hover-content .list').click(function() {
        var val = $(this).data('value'),
            target = $(this).parents('ul').data('target');

        $(target).val(val).parents('form').submit();
    });

    // 隐藏modal
    $('body').on('click', '[data-dismiss="modal"]', function() {
        $(this).parents('.modal').addClass('hide');
        // $('.modal').modal('hide');
    });

    // 显示modal
    $('body').on('click', '[data-toggle="modal"]', function() {
        var target = $(this).data('target');
        $(target).removeClass('hide');
        // $('.modal').modal('hide');
    });

    /* 更多筛选条件 */
    $('body').on('click', '.filter-switch', function() {
        $('.filter-detail').toggle();
        $(this).toggleClass('active');
    });

    // 全选
    $('.check-all').on('change', function() {
        var check = $(this).prop('checked');
        $(this).parents('table').find('.check-one').prop('checked', check);
    });

    $('.check-one').on('change', function() {
        var table = $(this).parents('table'),
            checkAll = table.find('.check-all');

        if (table.find('.check-one:not(:checked)').length <= 0) {
            checkAll.prop('checked', true);
        } else {
            checkAll.prop('checked', false);
        }
    });

    // select-options显示隐藏
    $('body').on('click', '.hw-select', function(e) {
        if ($(this).find('.hw-input').prop('disabled')) return;

        var selectOptions = $(this).find('.select-options');
        if (selectOptions.css('display') == 'none') {
            selectOptions.slideDown(100);
        } else {
            selectOptions.slideUp(100);
        }
    });

    // 选择option（使用click事件，如果点击按住的时间过长，会造成blur时间先于click事件触发）
    $('body').on('mousedown', '.select-options .option', function() {
        $(this).siblings().removeClass('selected');
        $(this).addClass('selected');
        $(this).parent().siblings('input').val($(this).data('value'));
        $(this).parent().siblings('.show-option').html($(this).find('span').text());
    });

    // hw-select失去焦点， 隐藏slect-options
    $('body').on('blur', '.hw-select', function() {
        var selectOptions = $(this).find('.select-options');
        selectOptions.slideUp(100);
    });

    // 列表在鼠标移入之后显示的区域位置
    var clientH = window.screen.availHeight;
    $('.hover-th').on('mouseenter', function(e) {
        var top = e.clientY;

        // 240是css中设置的hover-content的高度
        if (clientH - top <= 240) {
            $(this).find('.hover-content').addClass('top-hover');
        } else {
            $(this).find('.hover-content').removeClass('top-hover');
        }
    });


    var widthNumber = $('.width-number');
    widthNumber.find('input').on('input', function() {
        createMaxLengthShow.call(this);
    });
 
    widthNumber.find('textarea').on('input', function() {
        createMaxLengthShow.call(this);
    });

    widthNumber.find('input').triggerHandler('input');
    widthNumber.find('textarea').triggerHandler('input');

    function createMaxLengthShow() {
        var max = $(this).attr('maxLength') || 0,
            len = $(this).val().length,
            formControl = $(this).parent('.form-control'),
            span = formControl.find('.num-span');

            console.log(formControl.html())

        if (span.length) {
            span.text(len + '/' + max);
            return;
        }
        formControl.append('<span class="num-span">'+ len + '/' + max +'</span>');
    }
});



// 分页js
$(function() {
    $('.table-page').on('change', '.select', function() {
        $(this).parents('form').submit();
    });

    var pageNum = $('#page-num'),
        pElem = pageNum.parents('.page'),
        max = pageNum.data('max') || 1,
        url = pageNum.data('url'),
        get = pageNum.data('get');

    // 翻页跳转
    pageNum.on('change', function() {
        var num = $(this).val(),
            elem = null,
            errorElem = null;

        if (num <= max) {
            location.href = url + '/' + num + get;
        }
    });

    $(document).bind('keydown', function(e) {
        // 回车事件
        if(event.keyCode == 13) {
            var num = pageNum.val();

            if (num && num <= max) {
                location.href = url + '/' + num + get;
            }
            return false;
        }  
    });

    pageNum.on('input propertychange', function() {
        var num = +$(this).val();
        if (num < 1 || !/^[1-9]{1,}\d*$/.test(num)) {
            return $(this).val(1);
        }
        if (num > max) {
            return $(this).val(max);
        } 
    });
});